Appearance
.NET 入门
安装
Windows安装
.NET CLI
dotnet
sh
$ dotnet
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
dotnet -h
sh
$ dotnet -h
使用情况: dotnet [runtime-options] [path-to-application] [arguments]
执行 .NET 应用程序。
runtime-options:
--additionalprobingpath <path> 要探测的包含探测策略和程序集的路径。
--additional-deps <path> 指向其他 deps.json 文件的路径。
--depsfile 指向 <application>.deps.json 文件的路径。
--fx-version <version> 要用于运行应用程序的安装版共享框架的版本。
--roll-forward <setting> 前滚至框架版本(LatestPatch, Minor, LatestMinor, Major, LatestMajor, Disable)。
--runtimeconfig 指向 <application>.runtimeconfig.json 文件的路径。
path-to-application:
要执行的应用程序 .dll 文件的路径。
使用情况: dotnet [sdk-options] [command] [command-options] [arguments]
执行 .NET SDK 命令。
sdk-options:
-d|--diagnostics 启用诊断输出。
-h|--help 显示命令行帮助。
--info 显示 .NET 信息。
--list-runtimes 显示安装的运行时。
--list-sdks 显示安装的 SDK。
--version 显示使用中的 .NET SDK 版本。
SDK 命令:
add 将包或引用添加到 .NET 项目。
build 生成 .NET 项目。
build-server 与由生成版本启动的服务器进行交互。
clean 清理 .NET 项目的生成输出。
format 将样式首选项应用到项目或解决方案。
help 显示命令行帮助。
list 列出 .NET 项目的项目引用。
msbuild 运行 Microsoft 生成引擎(MSBuild)命令。
new 创建新的 .NET 项目或文件。
nuget 提供其他 NuGet 命令。
pack 创建 NuGet 包。
publish 发布 .NET 项目进行部署。
remove 从 .NET 项目中删除包或引用。
restore 还原 .NET 项目中指定的依赖项。
run 生成并运行 .NET 项目输出。
sdk 管理 .NET SDK 安装。
sln 修改 Visual Studio 解决方案文件。
store 在运行时包存储中存储指定的程序集。
test 使用 .NET 项目中指定的测试运行程序运行单元测试。
tool 安装或管理扩展 .NET 体验的工具。
vstest 运行 Microsoft 测试引擎(VSTest)命令。
workload 管理可选工作负荷。
捆绑工具中的其他命令:
dev-certs 创建和管理开发证书。
fsi 启动 F# 交互/执行 F# 脚本。
user-jwts 在开发中管理 JSON Web 令牌。
user-secrets 管理开发用户密码。
watch 启动文件观察程序,它会在文件发生更改时运行命令。
运行 "dotnet [command] --help",获取有关命令的详细信息。
使用.NET CLI创建应用程序
sh
$ dotnet new console -o hello-world
已成功创建模板“控制台应用”。
正在处理创建后操作...
正在还原 D:\.NET\hello-world\hello-world.csproj:
正在确定要还原的项目…
已还原 D:\.NET\hello-world\hello-world.csproj (用时 92 ms)。
已成功还原。
$ cd hello-world
$ dotnet run
Hello, World!
使用 Visual Studio Code 构建 .NET 应用程序
在VS Code中安装C#开发工具包扩展
打开 VS Code,并在左侧 VS Code 的活动栏中选择“扩展”按钮。在搜索栏中键入 "C#",选择“C# 开发工具包”,然后在 C# 开发工具包扩展页上选择“安装”按钮。
(vscode-csharp-devkit。来源:.NET官网)
创建应用
- 按 CTRL+SHIFT+P,在 VS Code 中打开命令面板。
- 键入 ".NET: " 来查看可使用 C# 开发工具包运行的命令!
- 查找“.NET: 新建项目”,并将其选中来创建新的 .NET 项目。
- 向下滚动并选择“控制台应用”。
- 选择要保存项目的文件夹位置。
- 出现提示时,在命令面板中将项目命名为
MyConsoleApp
。
dotnet-hello-world-new-project (dotnet-hello-world-new-project。来源:.NET官网)
在 VS Code 的边栏中,确保已打开资源管理器。应该会在此处看到文件夹和解决方案资源管理器。如果已打开一个新的 VS Code 实例,解决方案资源管理器可能在边栏底部附近。
(myconsoleapp-explorer。来源:.NET官网)
MyConsoleApp 文件夹中的主文件称为 Program.cs。默认情况下,它已包含将 Hello, World! 写入终端所需的代码。单击文件可查看模板创建的代码:
(myconsoleapp-programcs。来源:.NET官网)
运行应用
若要运行应用程序,请选择右上角的“运行”按钮右侧的下拉菜单,然后选择“运行与此文件关联的项目”。 (vscode-run。来源:.NET官网)
应该会在 VS Code 终端中看到 Hello, World!。
sh
Hello, World!
编辑代码
在 Program.cs
文件中,在打印 Hello, World! 的代码后面添加突出显示的行,如下所示:
cs
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Console.WriteLine("The current time is " + DateTime.Now);
保存 Program.cs 文件,然后再次选择“运行与文件关联的项目”。如果成功,应会看到类似于以下内容的输出:
sh
Hello, World!
The current time is 2024/3/20 15:01:18
在 .NET 项目中添加包
查找包
可在安装前转到 https://www.nuget.org/packages/<package name>
,详细了解包。
例如,PasswordGenerator
包的地址是这个:https://www.nuget.org/packages/PasswordGenerator
安装包
使用 dotnet add package <package name>
命令,可安装要作为应用程序的一部分使用的常规依赖项。
sh
$ dotnet add package PasswordGenerator --version 2.1.0
安装的包在 .csproj
文件的 dependencies
部分中列出。 如果需要查看文件夹中的包,可以输入 dotnet list package
。
sh
$ dotnet list package
项目“ConsoleApp”具有以下包引用
[net8.0]:
顶级包 已请求 已解决
> PasswordGenerator 2.1.0 2.1.0
该命令只列出顶层包,而不列出那些包的依赖项(我们称之为可传递包)。 此命令非常适合快速查看。 如果需要更详细的视图,可以列出所有可传递包。 执行此操作时,list
命令如下所示:
sh
$ dotnet list package --include-transitive
使用包
cs
using PasswordGenerator;
namespace ConsoleApp.DotNetDependencies;
public class DotNetDependencies
{
static void Main()
{
// By default, all characters available for use and a length of 16
// Will return a random password with the default settings
var pwd = new Password();
var password = pwd.Next();
Console.WriteLine($"password: {password}");
}
}